#ifndef _demoks_system_h_
#define _demoks_system_h_

#define DEMOKS_SYSTEM_DEVICEID NULL /** MAC设备名称 */

#define DEMOKS_SYSTEM_MAIN_FIRM_VER "v1.0.0"                         /** 固件版本 */
#define DEMOKS_SYSTEM_MODEL_CODE "lononled"                          /** modelCode */
#define DEMOKS_SYSTEM_DEVICE_MODEL "lononled"                        /** 版本型号 */
#define DEMOKS_SYSTEM_PRIVATE_KEY "mzzvkbuCYud2nNfJTIlvosYYS4ySDtcq" /** 通讯私钥 */
#define DEMOKS_SYSTEM_PUBLIC_KEY_LEN 128                             /** 通讯公钥长度 */

#define DEMOKS_SYSTEM_KEY_ACCESS_NET_COUNT "_net_count"

typedef enum uint8_t
{
    DEMOKS_SYSTEM_REGULAR_MODE = 0, /** 常规模式 */
    DEMOKS_SYSTEM_ACCESS_NET_HTTP,  /** 配网模式(HTTP协议) */
    DEMOKS_SYSTEM_ACCESS_NET_ERROR, /** 配网模式出错 */
    DEMOKS_SYSTEM_OPERATING_MODE,   /** 工作模式 */
} demoks_system_mode_t;

demoks_system_mode_t get_system_mode(void);
esp_err_t set_system_mode(demoks_system_mode_t s);
esp_err_t demoks_system_init(void);

/** 
 * @brief 获取通讯公钥 
 * 如果当前nvs中没有储存则立马创建一个
 * @return 公钥字符串
 */
char *demoks_system_get_public_key(void);
/** 
 * @brief  重新设置公钥字符串
 * @return 公钥字符串
 */
char *demoks_system_set_public_key(void);
/**
 * @brief  写入默认连接的WIFI账号密码到NVS
 */
esp_err_t demoks_system_set_wifi_ssid_passwd(char ssid[32], char passwd[32]);
/**
 * @brief  读取默认连接的WIFI账号密码
 */
esp_err_t demoks_system_get_wifi_ssid_passwd(char *ssid, char *passwd);
/**
 * @brief  获取设备ID
 */
esp_err_t demoks_system_get_device_id(char *device_id);
/**
 * @brief  获取配网次数
 */
uint8_t get_access_net_count(void);
/**
 * @brief  配网次数自增
 */
esp_err_t access_net_count_pp(void);
/**
 * @brief  请零配网次数
 */
esp_err_t access_net_count_clear(void);
/**
 * @brief 复位
 */

void demoks_system_restart(void);
#endif
